The present invention generally relates to a storage system, a storage controller and a data compression method, and in particular relates to technology for compressing and storing large volumes of data in a storage subsystem.
In recent years, a storage subsystem (storage controller) for controlling the input and output of data from a host system is used in a storage system that handles large volumes of data in order to store bulk data sent from the host system.
A storage subsystem manages a plurality of disk drives arranged in an array according to a RAID (Redundant Array of Independent Inexpensive Disks) configuration. At least one or more logical volumes (hereinafter referred to as “logical volumes”) are formed in a physical storage area provided by the plurality of disk drives, and these logical volumes are provided to the host system.
Since this type of storage system handles large volumes of data, a data compression method of reducing the data volume and converting it into separate data while retaining the substantial property of data is being widely used.
As one data compression method there is a dictionary-type data compression method known as the LZ77 system. The data compression method that uses the LZ77 system utilizes a previously encrypted input data sequence as a dictionary, searches for a location of maximum concordance of the previously encrypted input data sequence and the consecutive portion in the input data sequence, and encrypts the location of concordance.
The LZ77 system has a history array for storing the encrypted input data sequence. An area referred to as a prefetch area of a fixed length is prepared in the history array, and data to be compressed is stored in this area. In the prefetch area, update of data is facilitated by migrating such data circularly pursuant to the progress of processing.
Since one problem that arises in using the LA77 system is the deterioration of the encryption processing speed, Japanese Patent Laid-Open Publication No. H9-46235 discloses technology of overcoming this problem by controlling the registration upon registering the search result of a character string in the history array with a search means.